/**
 * 状态字段辅助模块
 * 用于处理项目状态字段的转换和适配
 */

/**
 * 确保项目对象包含新的状态字段
 * @param {Object} project - 项目对象
 * @returns {Object} 包含新状态字段的项目对象
 */
function ensureNewFields(project) {
  if (!project) return {};
  
  // 复制项目对象避免修改原对象
  const result = { ...project };
  
  // 确保level字段存在
  result.level1 = result.level1 || 0;
  result.level2 = result.level2 || '';
  result.level3 = result.level3 || '';
  result.level4 = result.level4 || '';
  
  // 从旧字段迁移
  if (result.status !== undefined && !result.level1) {
    result.level1 = mapStatus(result.status);
  }
  
  if (result.activeState && !result.level3) {
    result.level3 = result.activeState;
  }
  
  return result;
}

/**
 * 将旧状态映射到新的level1值
 * @param {number} status - 旧状态值
 * @returns {number} 新的level1值
 */
function mapStatus(status) {
  // 简单映射关系
  const statusMap = {
    0: 0,    // NONE -> NONE
    1: 1,    // DRAFT -> REVIEWING
    2: 2,    // DORMANT -> DORMANT
    3: 3,    // ACTIVE -> ACTIVE
    99: 99   // COMPLETED -> COMPLETED
  };
  
  return statusMap[status] || 0;
}

module.exports = {
  ensureNewFields
};
